﻿/*------------------------------------------------------------------
* JAVASCRIPT (JQUERY) COMMON FUNTIONS - MANH.NGUYEN - FEB 26, 2011
------------------------------------------------------------------*/
function Redirect(path) {
    location.href = path;
}

function Action(path) {
    if (getCheck('gridSource')) {
        var id = getCheckUpdate('gridSource');
        location.href = path + '/' + id;
    }
    else { alert("Không có dòng nào được chọn"); }
}

function Action(path, gridId) {
    var value = getSelectedValue(gridId);
    if (value) {
        location.href = path + '/' + value;
    }
    else { alert("Không có dòng nào được chọn"); }
}

function Edit(path, id) {
    location.href = path + '/' + id;
}

// CÁC THÔNG BÁO THƯỜNG SỬ DỤNG
var deleteMessage = 'Bạn có chắc xóa dòng này không?';
var notChecked = 'Xin vui lòng chọn một dòng';
var phongToaMessage = 'Bạn có chắc phong tỏa hợp đồng này không?'

//THIẾT LẬP DATETIME PICKER
function setDateTimePicker(divId) {
    $(function() {
        //MANH.NGUYEN - 25/08/2011
        //KHÔNG CHO PHÉP SỬA ĐỔI GIÁ TRỊ ĐƯỢC THIẾT LẬP BỞI DATETIMEPICKER 
        //TRÁNH CÁC LỖI PHÁT SINH
        //$("#" + divId).attr('readonly', true);    
        $("#" + divId).datepicker({
            dateFormat: 'dd/mm/yy',
            changeMonth: true,
            changeYear: true
        });
    });
}

//LẤY ID ĐƯỢC CHỌN TRÊN GRID
function getSelectedValue(gridId) {
    return $("#" + gridId).jqGrid('getGridParam', 'selrow');
}

function Delete(path) {
    if (getCheck('gridSource')) {
        var confirm = window.confirm("Bạn chắc chắn xóa các dòng đã chọn?");
        if (confirm) {
            document.form.action = path;
            document.form.submit();
        }
    }
    else { alert("Không có dòng nào được chọn"); }
}

function Back() {
    //history.go(-1);
}

function Select(className) {
    $('#' + className).addClass('item_selected');
}

//LẤY DANH SÁCH DỮ LIỆU THEO DẠNG JSON
function getList(path, divId, statusId) {
    //var status = $("#" + statusId);
    //status.html("<div class=\"loading\"></div><p class=\"center\">Đang tải dữ liệu...</p>");

    $.ajax({
        type: "GET",
        url: path,
        dataType: "html",
        success: function(result) {
            $("#" + divId).html(result.toString());
            //status.empty();
        },
        error: function() {
            //alert(error);
        }
    });
}

//LẤY THÔNG TIN CỦA ĐỐI TƯỢNG THEO DẠNG JSON
function getInfo(path, divId) {
    $.ajax({
        type: "GET",
        url: path,
        dataType: "html",
        success: function(result) {
            $("#" + divId).html(result.toString());
        },
        error: function() {
            //alert(error);
        }
    });
}

function getTableInfo(path, tableId) {
    $.ajax({
        type: "GET",
        url: path,
        dataType: "html",
        success: function(result) {
            if (result != null) {
                $('#' + tableId + ' > tbody:last').append(result.toString());
            }
        },
        error: function() {
            //alert(error);
        }
    });
}

// THEM DONG MOI VAO TABLE
function addRow(tableId, code) {
    //$('#' + tableId + 'tr:last').after(code);
    $('#' + tableId + ' > tbody:last').append(code.toString());
}

//XOA MOT DONG TRONG TABLE
function removeRow(divId) {
    $("#" + divId).remove();
}

function addItemToSelectList(divId, value, content) {
    var myOptions = {
        val: value
    };
    $.each(myOptions, function(val, text) {
        $('#' + divId).append(
        $('<option></option>').val(value).html(content)
    );
    });
}

//KHONG SU DUNG 
function getNumber(value) {
    if (isNumber(value))
        return parseFloat(value.replace(/,/gi, ''));
    else
        return 0;
}

// LẤY GIÁ TRỊ KIỂU SỐ AUTO NUMBERIC THEO ID 
// 20/07/2011 - MANH.NGUYEN: KIỂM TRA SỰ TỒN TẠI CỦA DIV TRƯỚC KHI TRUYỀN VÀO
function getAutoNumber(divId) {
    if ($("#" + divId).length > 0) {
        return $.fn.autoNumeric.Strip(divId, { aSep: $('#groupingSymbol').val(), aDec: $('#decimalSymbol').val(), mDec: $('#decimalPlaces').val() });
        //return value.toFixed(2);
    }
    else {
        //alert(divId + " này không tồn tại.");
        return 0;
    }
}

//son.le-2011.09.16: chuyển giá trị sang dạng số (bỏ cá ký tự phân cách)
function ToNumber(value) {
    return parseFloat($.fn.autoNumeric.StripValue(value, { aSep: $('#groupingSymbol').val(), aDec: $('#decimalSymbol').val(), mDec: $('#decimalPlaces').val() }));
}

//KIEM TRA GIA TRI KIEU THAP PHAN
function isNumber(value) {
    value = value.replace(/,/gi, '');
    if (value == '' || isNaN(value))
        return false;
    return true;
}

function Multiply(a, b) {
    return getAutoNumber(a) * getAutoNumber(b);
}

function Add(a, b) {
    return getAutoNumber(a) + getAutoNumber(b);
}

function Add(a, b,c,d) {
    return parseFloat(getAutoNumber(a)) + parseFloat(getAutoNumber(b)) + parseFloat(getAutoNumber(c)) + parseFloat(getAutoNumber(d));
}
//FORMAT KIỂU SỐ SANG DẠNG AUTO NUMBERIC
/*Type:
1: Format dữ liệu cho dạng value (Textbox, TextArea...)
2: Format dữ liệu cho dạng text (<span id="Id">text</span>, <div id="divId">text</div>)
Uses: 
Format('GiaTri', soLuong * donGia, 1);
*/
function FormatNumber(divId, number, type, isRound) {
    //KIỂM TRA SỰ TỒN TẠI CỦA ID
    if ($("#" + divId).length) {
        number = ((number == null) || (isNaN(number))) ? 0 : number;

        if (number < 0) { number = 0; }

        //LÀM TRÒN
        if ((isRound != null) && (isRound)) {
            number = Round(number);
        }

        number = $.fn.autoNumeric.Format(divId, number, { aSep: $('#groupingSymbol').val(), aDec: $('#decimalSymbol').val(), mDec: $('#decimalPlaces').val() });

        //alert(number);

        if (type == 1) {
            $("#" + divId).val(number);
        }
        if (type == 2) {
            $("#" + divId).text(number.toString());
        }
    }
}

//ĐỊNH DẠNG DANH SÁCH KIỂU SỐ SANG DẠNG AUTO NUMBERIC
function FormatAutoNumber(prefix, list) {
    var value = 0;
    for (var i = 0; i < list.length; i++) {
        if (prefix != "") {
            value = $.fn.autoNumeric.Strip(prefix + '_' + list[i], { aDec: '.', mDec: $('#decimalPlaces').val() });
            FormatNumber(prefix + '_' + list[i], value, 1);
        }
        else {
            value = parseInt($('#' + list[i]).text());
            FormatNumber(list[i], value, 2);
        }
    }
}

//CAP NHAP LAI KICH THUOT CHO SPLITPER BI THAY DOI KHI THAY DOI SO LUONG 
//HINH ANH UPLOAD
function UpdateSplitterSize() {
    setTimeout("$('.splitbarV').height($('#rightPanel').height());", 100);
}

//SAP XEP CAC TRUONG TRONG BANG
function Sortable(tableId) {
    SortableTable(document.getElementById(tableId), 100);
}

//THAY DOI CAC DANH SACH SU DUNG AJAX - JQUERY TO JSON
function LoadSubCategory(mainCategoryId, subCategoryId, path, argument, value, subFunction) {
    var url = path + "?" + argument.toString() + "=" + value;
    if ((argument == '') || (value == '')) { url = path; }

    $.getJSON(url, null, function(data) {
        $("#" + subCategoryId).empty();
        $.each(data, function(index, optionData) {
            $("#" + subCategoryId).append("<option value='"
                            + optionData.Value
                            + "'>" + optionData.Text
                            + "</option>");
        });
    });

    subFunction;

}

//KIEM TRA TRANG THAI CUA CAC ID (DROPDOWN LIST) VA DISABLE CAC BUTTON TUONG UNG
function CheckList(Id, buttonId, errorMessage) {
    if ($("#" + Id).val() == null) {
        if (errorMessage != null) {
            $("#" + Id + "_validationMessage").html("<font color=\"red\">" + errorMessage + "</red>");
        }
        $("#" + buttonId).attr("disabled", true);
    } else {
        $("#" + buttonId).attr("disabled", false);
        $("#" + Id + "_validationMessage").empty();
    }
}

function resize_the_grid(theGrid, theWrapper) {
    $('#' + theGrid).fluidGrid({ base: '#' + theWrapper, offset: -10 });
}

/*
CHUYỂN ĐỔI KIỂU CHUỔI SANG KIỂU NGÀY
SỬ DỤNG TRONG CẬP NHẬP GIAI ĐOẠN THANH TOÁN
CỦA PHIẾU ĐĂNG KÝ VÀ HỢP ĐỒNG

- distance: khoảng các giữa các ngày,
- isLower: ngày thay đổi lớn hơn ngày hiện tại
//*/
function ConvertStringToDate(str, distance, isLower) {
    var list = str.split("/");
    var date = new Date();
    var result;
    if (isLower) {
        date.setFullYear(list[2], list[1], list[0]);
        result = new Date(date.getFullYear(), date.getMonth(), date.getDate() - distance);
    }
    else {
        date.setFullYear(list[2], list[1], list[0]);
        result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + distance);
    }

    return result;
}


//MỞ CỬA SỔ BÁO CÁO MỚI (MỖI LẦN MỞ 1 CỦA SỔ KHÁC NHAU) - MANH.NGUYEN
function OpenWindows(url) {
    window.open(url, '');
}

//FOR RESIZE WINDOWS SON.LE (2011.05.25)
function jqGrid_resize() {
    $(window).bind('resize', function() {
        $('#grid_wapper').setGridWidth($(window).width(), true); //Resized to new width as per window        
    }).trigger('resize');
}
function jqGrid_resize_0() {
    $("#grid").setGridWidth($(window).width() - 10);
    $('#grid').fluidGrid({ base: '#grid_wrapper', offset: -2 });
}

var resizeTimer;
$(window).resize(function() {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(jqGrid_resize_0, 100);
});

//HÀM TRIM() TRONG JAVASCRIPT DÙNG ĐỂ CẮT KHOẢNG TRẮNG ĐẦU VÀ CUỐI CHUỖI
//THIEN.NGO (2011.06.20)
function trim(sString) {
    if (sString != "") {
        while (sString.substring(0, 1) == " ") {
            sString = sString.substring(1, sString.length);
            if (sString == "") {
                break;
            }
        }
        if (sString == "") {
            return sString;
        }
        while (sString.substring(sString.length - 1, sString.length) == " ") {
            sString = sString.substring(0, sString.length - 1);
            if (sString == "") {
                break;
            }
        }
    }
    return sString;
}

//XỬ LÝ TÌM KIẾM TRÊN GRID (SỬ DỤNG CHO CÁC BUTTON)
//MANH.NGUYEN (2011.08.15)
//gridId: ID CỦA GRID, buttonClass: CLASS CSS CỦA BUTTON ĐỂ KÍCH HOẠT SỰ KIỆN TÌM KIẾM
function gridSearch(gridId, buttonClass, isMultipleSearch) {
    
    isMultipleSearch = isMultipleSearch == null ? true : isMultipleSearch;
    
    $("." + buttonClass).click(function() {
        jQuery("#" + gridId).jqGrid('searchGrid', { closeOnEscape: true, multipleSearch: isMultipleSearch, closeAfterSearch: true });
    });
}

//CHUYỂN ĐỔI GIÁ TRỊ NGÀY THÁNG
//THIEN.NGO (2011.06.20)
function convert(date) {
    if (date == "" || date == null) {
        return "";
    } else {
        var day = date.substring(0, 2);
        var month = date.substring(3, 5);
        var year = date.substring(6, 10);
        return year + '-' + month + '-' + day;
    }
};

//MANH.NGUYEN - 22/08/2011
//KIỂM TRA GIÁ TRỊ ĐÃ TỒN TẠI TRONG DROPDOWN LIST HAY CHƯA
function isContain(divId, value) {
    var exists = false;
    $("#" + divId + " option").each(function() {
        if (this.text == value) {
            exists = true;
            return false;
        }
    });
}


//hoang.le Sửa lại các hàm tính ngày tháng năm
//Chuyển đổi chuổi sang kiểu ngày
//str: chuổi nhập vào (đ/mm/yyyy)
//trả về kiểu date(lưu ý: tháng tính từ 0 -11)
function ConvertToDate(str) {
    var list = str.split("/");
    var date = new Date();
    var result;
    date.setFullYear(list[2], list[1] - 1, list[0]);
    result = new Date(date.getFullYear(), date.getMonth(), date.getDate());
    return result;
}

//Chuyển string sang kiểu date  có cộng thêm số ngày
function ConvertToDateAdd(str, distance, isLower) {
    var list = str.split("/");
    var date = new Date();
    var result;
    if (isLower) {
        date.setFullYear(list[2], list[1] - 1, list[0]);
        result = new Date(date.getFullYear(), date.getMonth(), date.getDate() - distance);
    }
    else {
        date.setFullYear(list[2], list[1] - 1, list[0]);
        result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + distance);
    }
    return result;
}

//Hàm này không chính xác - sẽ loại bỏ sau khi thay thế bằng hàm ConvertToDateAdd
function ConvertStringToDate(str, distance, isLower) {
    var list = str.split("/");
    var date = new Date();
    var result;
    if (isLower) { 
        date.setFullYear(list[2], list[1], list[0]);
        result = new Date(date.getFullYear(), date.getMonth(), date.getDate() - distance);
    }
    else {
        date.setFullYear(list[2], list[1], list[0]);
        result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + distance);
    }

    return result;
}

//MANH.NGUYEN - 04/09/2011
//KHỞI TẠO EDITOR CHO CÁC DIV NHẤT ĐỊNH ELEMENTS = "DIV1, DIV2" 
function setupEditor(elements)
{
        tinyMCE.init({
        mode: "exact",
        elements: elements,
        entity_encoding: "raw",
        theme: "advanced",
        plugins: "spellchecker,style,layer,table,save,advhr,advimage,advlink,inlinepopups,insertdatetime,media,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",

        // THEME OPTIONS
        theme_advanced_buttons1: "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,forecolor,|,removeformat,code,fullscreen,|,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2: "",
        theme_advanced_buttons3: "",

        theme_advanced_toolbar_location: "top",
        theme_advanced_toolbar_align: "left",
        theme_advanced_statusbar_location: "",
        theme_advanced_path: false,
        
        width: "100%",

        // SKIN OPTIONS
        skin: "o2k7",
        skin_variant: "silver"

    });
}